\section{Introducción}

El objetivo del siguiente trabajo es aplicar los conceptos de System Programing dados en la materia, creando un mini kernel, el cual permita pedir memoria en forma de páginas para el funcionamiento de 4 tareas provistas por la catedra. Se utlizarán un subconjunto de todas las funcionalidades que provee Intel para la creación y manejo de Sistemas Operativos.\\

Para ello, vamos a crear una GDT, definir todos los segmentos necesarios, usar paginación y manejo de memoria adecuadamente , escribir en memoria de vídeo, ser 
capaz de controlar interrupciones, pedir páginas nuevas para el kernel y para el usuario, utilizar el sistema de protección en los anillos 0 y 3 y finalmente, ejecutar las cuatro tareas dadas, asignándole tiempo del procesador a cada una y conmutarlas para que el usuario perciba que se estan ejecutando en "simultaneo". Las tareas permitirán observar si las páginas se estan reservando y escribiendo correctamente.\\

En este trabajo se utilizara el como entorno de pruebas el programa Bochs, que permite simular una computadora IBM-PC compatible desde el inicio y realizar todas las tareas de debugging para lograr el correcto funcionamiento del código generado. El código será escrito en assembler y C, según convenga.
\pagebreak



